第12章 計画:スコープの管理
#エクストリームプログラミング
XPの計画づくりは以下の要素を検討することから始まる
現在のゴール
前提
事実
XPの計画づくりは食料品を買い行くことと同じ
1000円を持ってスーパーに行き、値札のある食料品を1000円以内で必要なものを購入する。
この例えでいうと、食料品がストーリー、値札が見積もり、1000円が予算である
計画づくりはすべての可能性のなから必要なものを選択しないといけない
プロジェクト管理には4つの要素がある。「速度」「品質」「価格」「スコープ」。この要素でコントロールするのはスコープ。それ以外の要素を変化させることデメリットが大きい
スコープを調整すれば池のメリットがある
状況に合わせて適応する安全な方法が得られる
協議の方法が得られる
非常識で不必要な要望を制限できる
以下の手順で計画をチーム全体で行う
1. 完成させる必要がありそうな作業項目を一覧にする
2. 項目を見積もる
3. 計画サイクルの予算を設定する
4. 予算内で完成させる作業に合意する。競技のときには見積もりや予算を変更しない
上記の手順はペアプロや週次サイクル、四半期サイクルなどにも応用できる
計画づくりはチーム全員が参加すべき。顧客も参加して予算についての議論をするところもある
実装するストーリーは複数の方法で並び替えて、ストーリー通しに関係性をわかりやすくする
ストーリーを見積もる時にはペアで見積もり、類似のストーリーがあれば参考に見積もることで、精度があがる
見積もりを行うときには経験のもとづいた見積もりを実施する。実際にイテレーションで消費する工数を計算して見積もる
予算(納期とチーム規模)を決めるときには、ペアプログラミングを行う前提で計算を行う。例えばチームに6人のプログラマーがいて1日で4時間開発できれば、1週間で開発できる時間は、(6/2)*4の12時間になる。
ペアプログラミング前提で計算しているので、見積もり時間は半分になるが、デバッグの時間を含めると2人で行うほうが、結果的に効率がよくなる
第1版では見積もりモデルをポイントで管理していたが、第2版では実時間を採用している。こちらの方が実用的と判断している。
実時間・ポイントどちらを使用していても、現実と計画が合わない場合は調整が必要。実時間の場合は、完成していなストーリーの見積もりを実際の経験を踏まえて修正する。ポイント場合は、今後サイクルで修正する
マーティン・ファウラーはこれを昨日の天気と読んでいつ。新しい情報が来たらすぐに計画を調整する
進捗が遅れたときには、再調整する方法を模索する。ここで調整をしないと、ウソをついたまま仕事にすることになり、デプロイできないことになる。そうなると、チームの信頼が失われる。
物事がうまくいかないときこそ、価値と原則に則ること。見積もりは正確ではない場合は、情報不足が原因なので、数字を修正して正直にお客様に伝えよう
人間関係は自動化できない。みんなが信じられる計画を作り、邁進できるようにしないといけない